package de.mnit.schnipsel.db;

import de.mnit.basis.daten.struktur.S_Folge;
import de.mnit.basis.daten.struktur.tabelle.S_Tabelle;
import de.mnit.basis.daten.typ.zeit.S_Datum;
import de.mnit.basis.fehler.system.F_Sys_Sicherheit;

/**
 * @author Michael Nitsche
 * 27.10.2010	Erstellt
 */
public interface S_DBZ_Schnipsel {

	/** Titel, ID **/
	S_Tabelle<String> gChronik(int anzahl);
	Integer gAst(int id);
	B_Schnipsel gEintragB(int id) throws F_Sys_Sicherheit;
	S_Folge<B_Schnipsel> gAlleB() throws F_Sys_Sicherheit;
	S_Tabelle<String> gTabSuche(String suche);
	S_Tabelle<String> gTabLinkDialog(String suche);
	S_Tabelle<String> gTabAst(Integer astId);
	S_Tabelle<String> gTabMuell();
	S_Tabelle<String> gTabSuche2(String suche);
	S_Tabelle<String> gTabAst2(Integer astId);
	S_Tabelle<String> gTabMuell2();
	int gAnzahlGesamt(boolean muell);
	S_Tabelle<String> gTabExport();
	S_Tabelle<String> gTabExport(Integer astId);

	void sVerschluesselt(int id, CRYPTLEVEL crypt) throws F_Sys_Sicherheit;
	void sAblauf(int id, S_Datum ablauf);
	void sBaumZweig(int id, int astId, boolean muell);

	void minus(int id, boolean loeschen);
	void leeren();
	void importiere(B_Schnipsel s);
	int plus(String titel, String text, String format, CRYPTLEVEL crypt) throws F_Sys_Sicherheit;
	void aendern(int id, String titel, String text, String format, CRYPTLEVEL crypt, boolean geaendert) throws F_Sys_Sicherheit;
	void entferneBaumZweig(int ast_id);
	void verschluesseln(CRYPTLEVEL level) throws F_Sys_Sicherheit;

}